### プロジェクト22 ノイズメーター **1. 説明** ノイズメーターは、LEDマトリクス上の点の数を使ってノイズの大きさを反映します。 **2. 配線図** ![](media/B20.png) **3. テストコード** ``` /* keyestudio ESP32 Inventor Learning Kit Project 22 Noisemeter http://www.keyestudio.com */ #include int DIN = 23; int CLK = 18; int CS = 15; int sensor = 34; LedControl lc=LedControl(DIN,CLK,CS,1); byte data_val[8][8]= { {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01}, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x01}, {0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x03, 0x01}, {0x00, 0x00, 0x00, 0x00, 0x0f, 0x07, 0x03, 0x01}, {0x00, 0x00, 0x00, 0x1f, 0x0f, 0x07, 0x03, 0x01}, {0x00, 0x00, 0x3f, 0x1f, 0x0f, 0x07, 0x03, 0x01}, {0x00, 0x7f, 0x3f, 0x1f, 0x0f, 0x07, 0x03, 0x01}, {0xff, 0x7f, 0x3f, 0x1f, 0x0f, 0x07, 0x03, 0x01} }; void setup() { lc.shutdown(0,false); //When powering on, MAX72XX is in the power saving mode. lc.setIntensity(0,8); //Set the brightness to the maximum lc.clearDisplay(0); //Clear the display } void loop() { int val = analogRead(sensor); Serial.println(val); int temp = map(val,0,800,0,7); //The range of analog values in the 0-800 is the most appropriate for(int i=0;i<8;i++) { lc.setRow(0,7-i,data_val[temp][i]); } } ``` **4. テストコードの説明** 音センサーが検出する音の値が大きいほど、LEDマトリクス上の点が多く点灯します。 ![](media/B21.png)![](media/B22.png)